/* Zatok - язык программирования текстовых игр
 * (С) 2010 - 2012 Меркулов Матвей Юрьевич
 * Код лицензирован под лицензией GNU LGPL
 * Вы можете прочитать текст лицензии по адресу:
 * http://www.gnu.org/copyleft/lesser.html
 * или прочитать русский перевод по адресу:
 * http://ru.wikisource.org/wiki/GNU_Lesser_General_Public_License
 */

package base.value.userobject;

import base.CProject;
import base.context.CCommand;
import base.module.CModule;

public class CProcessCommands extends CModule {
	@Override
	public void Init() {
		int[] Array = { 1, 2 };
		AssertParam( Array );
	}
	
	
	
	@Override
	public void Execute() {
		String Prefix = "";
		if( Param.length == 2 ) Prefix = Param[ 1 ].ToString();

		CUserObject OldCurrentObject = CProject.CurrentObject;
		CProject.CurrentObject = Param[ 0 ].ToObject();

		for ( CCommand Command : CProject.CurrentObject.BaseData.Commands ) {
			CProject.CurrentLineNumber = Command.LineNumber;
			CProject.CurrentFileNumber = Command.FileNumber;
			if ( Command.Condition.ToBoolean() ) CProject.AddCommand( ( Prefix + Command.Name.ToString() ).toLowerCase(), Command );
		}

		CProject.CurrentObject = OldCurrentObject;
	}
}
